#include "TraceObj.h"

namespace tsc
{
namespace common
{

using namespace std;


/*******************************************************************************
 *
 *
 *
 ******************************************************************************/
TraceObj::TraceObj(const char* pName) :
	_name(pName)
{
  for (size_t i = 0; i < END_GROUP; ++i)
  {
    _traceState[i] = false;
  }
  // trace groups enabled by default
  enable(INFO_GROUP);
  enable(TRACE_ERROR_GROUP);
  enable(TRACE1_GROUP);
}

/*******************************************************************************
 *
 *
 *
 ******************************************************************************/
TraceObj::~TraceObj()
{

}

/*******************************************************************************
 *
 *
 *
 ******************************************************************************/
void
TraceObj::enable(traceGroup_e tg)
{
  _traceState[tg] = true;
}

/*******************************************************************************
 *
 *
 *
 ******************************************************************************/
void
TraceObj::enableAll()
{
  for (size_t i = 0; i< END_GROUP; ++i)
  {
	  _traceState[i] = true;
  }
}

/*******************************************************************************
 *
 *
 *
 ******************************************************************************/
void
TraceObj::disable(traceGroup_e tg)
{
	_traceState[tg] = false;
}

/*******************************************************************************
 *
 *
 *
 ******************************************************************************/
void
TraceObj::disableAll()
{
  for (int i = 0; i< END_GROUP; ++i)
  {
	  _traceState[i] = false;
  }
}

/*******************************************************************************
 *
 *
 *
 ******************************************************************************/
bool
TraceObj::isEnabled(traceGroup_e tg)
{
  return _traceState[tg];
}

string*
TraceObj::getName()
{
	return &_name;
}

} // namespace common
} // namespace sctp_sim


